package com.itheima.dao;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 角色-菜单关系, 数据访问层接口
 */
public interface TRoleMenuDao {
    /**
     * 添加 角色-菜单 关系记录
     * @param roleId 角色id
     * @param menuId 菜单id
     */
    @Insert("INSERT into t_role_menu (role_id, menu_id) VALUES (#{roleId}, #{menuId})")
    int add(@Param("roleId") Integer roleId, @Param("menuId") Integer menuId);

    /**
     * 根据角色id获取该角色关联的所有菜单项id
     * @param roleId 角色id
     * @return
     */
    @Select("SELECT menu_id FROM t_role_menu where role_id = #{roleId}")
    List<Integer> findMenuIdsByRoleId(Integer roleId);

    /**
     * 在 角色-菜单表 删除原有的关系记录
     * @param roleId
     * @return
     */
    @Delete("DELETE from t_role_menu where role_id = #{roleId}")
    int deletRoleMenuRelationshipByRoleId(Integer roleId);
}
